package com.apanal.qlife.common.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 系统操作日志记录注解<br>
 * 含有此注解的方法其结果成功或非已知业务异常都会被记录,已知业务异常(BusinessException)是否记录由属性busiEx决定
 */
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SystemLog {

	/**
	 * 模块名称
	 * 
	 * @return
	 */
	String module();

	/**
	 * 具体操作
	 * 
	 * @return
	 */
	String operation();

	/**
	 * 操作类型
	 * 
	 * @return
	 */
	LogType type();

	/**
	 * 已知业务错误(业务异常BusinessException)是否记录, 默认否
	 * 
	 * @return
	 */
	boolean busiEx() default false;

}
